Adding an individual to a video conference

ABSTRACT

A method, computer system, and computer program product for adding individual to a video conference. The method may include capturing a first video stream of a user from a first camera of a device and providing the first video to a device of at least one video conference participant other than the user. The method may include capturing and analyzing second video stream from second camera to detect whether an individual appears in the second video stream. In response to detecting an individual in the second video stream, the method may include determining an identity for the individual and prompting the user to confirm adding the individual to the video conference. In response to receiving the confirmation from the user to add the individual to the video conference, the method may include adding the second video stream to the video conference, thereby adding the individual to the video conference.

BACKGROUND

Embodiments of the present invention relate generally to a method,system and computer program for adding an individual to a videoconference.

There are many user devices where each user device has multiple cameras.Typically, such user devices have front and rear facing cameras. Thesecameras may be used simultaneously to enable video conferencing.

BRIEF SUMMARY

An embodiment of the present invention may include a method, computersystem, and computer program product for adding an individual to a videoconference. The method may include capturing a first video stream of auser from a first camera of a user device and providing the first videoto a device of at least one video conference participant other than theuser. The method may include capturing and analyzing a second videostream from a second camera to detect whether an individual appears inthe second video stream. In response to detecting an individual in thesecond video stream, the method may include determining an identity forthe individual and prompting the user to confirm adding the individualto the video conference. In response to receiving the confirmation fromthe user to add the individual to the video conference, the method mayalso include adding the second video stream to the video conference,thereby adding the individual to the video conference. The first cameramay be on a first side of the user device and the second camera may beon a different side of the user device. The second camera may be on anIoT device. The method may include determining the identity for theindividual by capturing an image of the individual appearing in thesecond camera and comparing the image of the individual captured by thesecond camera to a photo stored in a database.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

These and other objects, features and advantages of the presentinvention will become apparent from the following detailed descriptionof illustrative embodiments thereof, which is to be read in connectionwith the accompanying drawings. The various features of the drawings arenot to scale as the illustrations are for clarity in facilitating oneskilled in the art in understanding the invention in conjunction withthe detailed description. The drawings are discussed forthwith below.

FIG. 1 is a schematic block diagram illustrating a system for adding anindividual to a video conference, in accordance with an embodiment ofthe invention.

FIG. 2 is a flow chart illustrating an example method for adding anindividual to a video conference, in accordance with an embodiment ofthe invention.

FIG. 3 is a block diagram depicting the hardware components of a systemfor adding an individual to a vidoe conference, in accordance with anembodiment of the invention.

FIG. 4 is a functional block diagram depicting a cloud computingenvironment, in accordance with an embodiment of the invention.

FIG. 5 is a diagram depicting abstraction model layers provided by thecloud computing environment of FIG. 4, in accordance with an embodimentof the invention.

DETAILED DESCRIPTION

Embodiments of the present invention will now be described in detailwith reference to the accompanying Figures.

The following description with reference to the accompanying drawings isprovided to assist in a comprehensive understanding of exemplaryembodiments of the invention as defined by the claims and theirequivalents. It includes various specific details to assist in thatunderstanding but these are to be regarded as merely exemplary.Accordingly, those of ordinary skill in the art will recognize thatvarious changes and modifications of the embodiments described hereincan be made without departing from the scope and spirit of theinvention. In addition, descriptions of well-known functions andconstructions may be omitted for clarity and conciseness.

The terms and words used in the following description and claims are notlimited to the bibliographical meanings, but, are merely used to enablea clear and consistent understanding of the invention. Accordingly, itshould be apparent to those skilled in the art that the followingdescription of exemplary embodiments of the present invention isprovided for illustration purpose only and not for the purpose oflimiting the invention as defined by the appended claims and theirequivalents.

It is to be understood that the singular forms “a,” “an,” and “the”include plural referents unless the context clearly dictates otherwise.Thus, for example, reference to “a component surface” includes referenceto one or more of such surfaces unless the context clearly dictatesotherwise.

Embodiments of the present invention provide a method, computer program,and computer system for adding an individual to a video conference. Manyuser devices, such as mobile phones and tablets, have multiple cameras.Typically, these user devices may have front facing cameras and backfacing cameras. A user that is using such a user device to conduct avideo conference may use the front facing camera to show the userspeaking from the device. However, the user may have to switch the viewfrom the front facing camera to the back facing camera to show somethingin the user's environment.

Oftentimes, the user, who is participating on a video conference, maywish to add an individual to that ongoing video conference. The user mayallow that individual to try and squeeze into the front facing camera'sfield of view so that both the individual and the user may be seen byother participants of the video conference. The user of the user devicethat is being used to conduct the video conference may switch the camerastream from front facing to back facing. This may allow otherparticipants of the video conference to see the individual but not theuser. The user may also add the individual to the ongoing videoconference by having the individual use the individual's user device toseparately join the video conference. However, this may be problematicbecause it may involve many steps. The user may have to find the addfunction on the user device that allows other participants to be added.Another step may involve the video conferencing system reaching out tothe individual on the user device the individual has enabled for thevideo conference to invite the individual to participate. The individualmay then have to accept the invitation. Oftentimes, the individual mayhave to configure the audio and video settings of the user device theindividual is using to participate in the video conference. As such,there exists a need to efficiently add an individual to an ongoing videoconference without disrupting the user and other video conferenceparticipants.

Accordingly, at least some of the embodiments described herein provide atechnical solution to the problems described above with respect toadding an individual to a video conference. Specifically, someembodiments described herein provide a method of adding an individual toan ongoing video conference with without disrupting the user or otherparticipants. Moreover, the embodiments described herein may reducepower consumption of the user device by allowing the user to add anindividual to a video conference using a single prompt response. Thesingle prompt response may be in the form of a touch response, a gestureresponse, or a voice response.

Reference will now be made in detail to the embodiments of the presentinvention, examples of which are illustrated in the accompanyingdrawings, wherein like reference numerals refer to like elementsthroughout. Embodiments of the invention are generally directed toadding an individual to a video conference.

FIG. 1 illustrates a system 100 for adding an individual to a videoconference, in accordance with an embodiment of the present invention.In an example embodiment, the system 100 may include user devices 102 a,102 b and a server 104, all connected via one or more networks 106.

In the example embodiment, the network 106 is the Internet, representinga world wide collection of networks and gateways to supportcommunications between devices connected to the Internet. The network106 may include, for example, wired, wireless, or fiber opticconnections. In alternative embodiments, the network 106 may beimplemented as an intranet, a local area network (LAN), or a wide areanetwork (WAN). In general, the network 106 can be any combination ofconnections and protocols that will support communications between theuser devices 102 and the server 104. The network 106 may be an exampleof a communications network 1200 illustrated in FIG. 3.

The user devices 102 a, 102 b may include user interface 108 a, 108 b,respectively. The user devices 102 a, 102 b may be a desktop computer, anotebook, a laptop computer, a tablet computer, a handheld device, asmart-phone, a cellular phone, a thin client, or any other electronicdevice, computing system, wired or wireless device that containsmultiple cameras, that may be used, at the same time, for videoconferencing. For example, the user device 102 a, 102 b may be asmart-phone with multiple cameras. The first camera may be on a firstside of the smart-phone and the second camera may be on a different sideof the smart-phone. The first camera may be a front facing camera andthe second camera may be a back facing camera. The front facing cameramay be used to capture a first video stream and the back facing cameramay be used to capture a second video stream. The first video camera maycapture the first video stream where the user is holding the smart-phonewhile the second video camera may capture the second video stream wherean individual is in front of the user that is holding the user device102. Although FIG. 1 illustrates two user devices, user device 102 a anduser device 102 b, it should be appreciated that principles of anembodiment of the present invention are not restricted to two userdevices 102 and may be used with any number of user devices. Forexample, the first user may be using user device 102 a and the seconduser may be using user device 102 b. Both the first and the second userare participating in the same video conference using their respectiveuser devices 102 a and 102 b.

The user interface 108 may include components used to receive input froma user on the user device 102 and transmit the input to another userdevice and display the information to the user on the user device 102.For example, the user interface 108 may display the video conferencethat the user is participating in by streaming a video stream fromeither a first or second camera of the user device 102. Further, theuser interface 108 may also display different prompts, such as, a promptto add an individual to the video conference, a prompt to end the videoconference, or a prompt to change video conference settings. The videoconference settings may include voice settings, display settings, camerasettings, or any other settings that may be adjusted on the user device102.

The server 104 may include a video conferencing system 110. In theexample embodiment, the server 104 may be a desktop computer, anotebook, a laptop computer, a tablet computer, a thin client, or anyother electronic device or computing system capable of storing,compiling, and organizing audio, visual, or textual content during avideo conference, and receiving and sending that content to and fromother computing devices, such as the user devices 102 a, 102 b. Theserver 104 may also be a remote server. For example, the server 104 maybet at a Cloud location remote from the user devices 102 a, 102 b, suchas a video conferencing server.

The video conferencing system 110 may include a database 112. The videoconferencing system 110 may be used by the user to create a userregistration. The video conferencing system 110 may also be used tocapture a second video stream, identify that an individual appearing inthe second video stream is a registered user, and add the second videostream to a video conference, thereby adding the individual that videoconference. Although FIG. 1 illustrates the video conferencing system110 included in a server 104 remote from the user devices 102 a, 102 b,it should be appreciated that the video conferencing system 110 may beincluded in the user devices 102 a, 102 b in the form of an application.

The database 112 may store identifying information of each user thatregisters to use the video conferencing system 110. In an embodiment ofthe present invention, the identifying information may include a name, amailing address, an email address, a phone number, a social securitynumber, a user name, a nickname, facial characteristics, a photo, or avoice recording of the user. The identifying information may alsoinclude an image of the user, a voice recording sample of the user, orany other information personal to the user that may be used to identifythe user.

Referring to FIG. 2, a method 200 for adding an individual to a videoconference is depicted, in accordance with an embodiment of the presentinvention.

Referring to operation 210, the video conferencing system 110 receives auser registration. In an embodiment of the present invention, the usermay register with the video conferencing system 110. The user mayutilize an application of the video conferencing system 110 or the videoconferencing system's 110 website to register by providing the videoconferencing system 110 the user's identifying information. For example,the user may use a video conferencing system application, installed onthe user device 102, to fill out a registration form, and create log-incredentials. The user may then use the log-in credentials to log-in tothe video conferencing system 110 each time the user may want to use thevideo conferencing system 110. Optionally, the user may stay logged intothe video conferencing system 110 or create an automatic log-in setting.

During the registration process, the video conferencing system 110 maycollect identifying information of the user and store that informationin database 112. For example, the identifying information may includethe name, mailing address, email address, phone number, social securitynumber, user name, nickname, facial characteristics, photo, or voicerecording of the user. Once the user is registered with the videoconferencing system 110, the user may use the system 110 to initiate avideo conference or participate in an ongoing video conference withother registered users. The identifying information may be used toidentify the user as a potential participant in a video conference.

Once the user is logged into the video conferencing system 110, thevideo conferencing system 110 captures, at operation 212, a first videostream of the user from a first camera. For example, the first cameramay be the front facing camera of the user device 102 and the firstvideo stream may be the video of the user displaying himself/herselfwhile participating in a video conference.

The video conferencing system 110 may actively scan the environment,using additional cameras, such as a secondary camera, to identify otherpotential individuals that may be added to the ongoing video conference.According to an embodiment, the secondary camera may be the back facingcamera on the user device 102 being used for the video conference.

Referring to operation 214, when the video conferencing system 110 scansthe environment via the secondary camera, it may capture a second videostream from a second camera. In an embodiment of the present invention,the second camera may be the back facing camera of the user device 102that is being used by the user to stream the first video stream usingthe front facing camera of the user device 102. The back facing cameraof the user device 102 may be actively scanning the environment in orderto capture a second video stream.

According to another embodiment, the video conferencing system 110 maycapture a second video stream from a secondary camera that is disposedat a fixed or semi-permanent location, such as an “Internet of Things”(IoT) device. The “Internet of Things” may refer to a network ofphysical objects or “things” that are embedded with and/or otherwiseinclude electronics, software, cameras, sensors, and networkconnectivity that allow these objects to collect and exchange data.Exemplary IoT devices include, but are not limited to, televisions,clocks, phones, faxes, printers, light bulbs, routers, refrigerators,ovens, stoves, stereos, media players and/or recorders, and so forth.

The user of a second camera, associated with an IoT device, may be moreapparent with the following example. The user may be participating in avideo conference while sitting in a conference room. The user may beusing the front facing camera of the user device 102 to displayhimself/herself to at least one other video conference participant. Theconference room may be equipped with an IoT device such as a projectorthat has a camera built in. When an individual, other than the user,walks into the conference room, the projector's camera may capture avideo stream. This video stream may be the second video stream and theprojector's camera may be the second camera. The projector's camera maycommunicate with the video conferencing system 110, via the network 106,to provide the video conferencing system 110 with the captured videostream so that the video conferencing system 110 may analyze the feed todetermine the identity of the individual.

Once the second video stream from the second camera is captured, thevideo conferencing system 110 analyzes the second video stream todetermine whether an individual has appeared in the second video stream.When the video conferencing system 110 determines that an individualappeared in the second video stream, the video conferencing system 110,at operation 216, analyzes the second video stream, using for exampleimage or voice recognition software or near-field communication (NFC)technology, to determine whether the individual captured in the secondvideo stream is a registered user.

The video conferencing system 110 may utilize different tools to analyzethe second video stream in order to determine whether the individual isa registered user. The video conferencing system 110 may utilize imagerecognition software to determine features and visual elements fromdigital image data provided by the second camera. For example, the videoconferencing system 110 may employ known algorithms such as deeplearning convolutional neural network techniques, edge detectionalgorithms, active contour algorithms, blob detection methods, orscale-invariant feature transform algorithms. Techniques for recognizingand classifying features and visual elements are well known in the art,and any suitable technique or combination of techniques may be employedby the video conferencing system 110 for image recognition.

In an example embodiment of the present invention, the videoconferencing system 110 may use an image recognition software comparethe picture of the individual that appears in the second video with allimages of the registered users the video conferencing system 110 hasstored in its database 112. It should be appreciated that the imagerecognition software may also be used to determine features and visualelements from digital image data provided by the first camera, or anyother camera that is being used by the video conferencing system 110during a video conference, such as, for example, IoT cameras.

The video conferencing system 110 may utilize voice recognition softwareto identify or verify the identity of the individual in order todetermine whether the individual is a registered user. The videoconferencing system 110 may verify the identity of the individual bycomparing the individual's voice to the voice sample recording of thatindividual stored in the database 112. For example, the individual,captured by the second camera, may state “I am Jane Doe.” The videoconferencing system 110 may take that voice recording and compare it tothe voice recording sample of Jane Doe that is stored in the database112 to determine that the individual, captured by the second camera,really is Jane Doe.

When the recording matches the voice recording sample of Jane Doe, thevideo conferencing system 110 determines that the individual is Jane Doeand that Jane is a registered user. The video conferencing system 110then proceeds to operation 220. When the recording does not match thevoice recording sample of Jane Doe, the video conferencing system 110compares that voice recording to all voice recording samples it hasstored in database 112 to determine whether the individual is aregistered user. If the video conferencing system 110 finds a match andidentifies the individual, the video conferencing system 110 proceeds tooperation 220. If however the video conferencing system 110 does notfind a match and cannot identify the individual, the video conferencingsystem 110 may store the voice recording in its database 112 and may usethat voice recording as a sample recording when that particularindividual decides to register with the video conferencing system 110.

The video conferencing system 110 may also identify the individual bycomparing the individual's voice against all voice recording samplesstored in its database 112. For example, the video conferencing system110 may record the second video stream to capture the individualspeaking and compare that recording to all the voice recording samplesit has stored in the database 112, using the voice recognition software.For example, the video conferencing system 110 captures the second videostream, from the second camera. In that second video stream, theindividual says “Good Morning” but does not state his/her name. Thevideo conferencing system 110 may take that recording and may compare itto all the recordings stored in its database 112 to determine theidentity of the individual. When the recording matches a particularvoice recording sample, the video conferencing system 110 may identifythe individual.

When the recording does not match any of the voice recording samplesstored in the database 112, the video conferencing system 110 may notidentify the individual. The video conferencing system 110 may utilizeother means of recognition, such as image recognition software toidentify the individual. If the individual cannot be identified, thevideo conferencing system 110 may optionally store the recording in itsdatabase 112 and use that recording as an additional sample voicerecording when that particular individual decides to register with thevideo conferencing system 110. For example, during the registrationprocess, the individual provides the video conferencing system 110 witha sample voice recording. The video conferencing system 110 may comparethe sample voice recording provided by the individual with all othersample voice recordings it has stored in the database 112 which have notbeen associated with a particular user account to determine whetherthere is a match. If the video conferencing system 110 finds a match,the video conferencing system 110 may then add the matched sample voicerecordings to that individual's account and store these voice recordingsas sample voice recordings in the database 112.

The video conferencing system 110 may verify the identity of theindividual by utilizing near-field communication (NFC) technology. NFCtechnology may utilize communication protocols allowing user devices 102a, 102 b to communicate with each other, IoT devices, or other devices,such as, for example, car key fob via the network 106. For example, thevideo conferencing system 110, using NFC technology, may communicatewith a mobile phone of an individual that is captured by the secondvideo camera to determine the identity of that individual. For example,user A, sitting in a conference room, is using user device 102 a toparticipate in a video conference. An individual, carrying his/hermobile phone, enters the field of view of the second camera that is onthe user device 102 a. Utilizing NFC technology the user device 102 acommunicates with the individual's mobile phone allowing the videoconferencing system 110 to determine that the individual is likely JaneDoe. The video conferencing system 110 determines that the individual islikely Jane Doe because the individual's mobile phone is registeredunder the name of Jane Doe. The video conferencing system 110 may thenfurther analyze the second video stream to determine that the individualis in fact Jane Doe by using image and/or voice recognition software.

The video conferencing system 110 may use image and/or voice recognitionto determine whether there is a match with the images or voice recordingsamples stored in its database 112. When the comparison between what iscaptured by the second camera and what is stored in the database 112results in a match, the video conferencing system 110 determines thatthe individual is a registered user. When the comparison does not resultin a match, the video conferencing system 110 determines that theindividual is not a registered user. If the identified individual is nota registered user, the video conferencing system 110, at operation 218,continues with the video conference without asking the user whether theindividual and the second video stream should be added to the videoconference.

In an alternative embodiment of the present invention, the videoconferencing system 110 may prompt the user whether to add theindividual that appears in the second video stream when the videoconferencing system 110 determines that the individual is not aregistered user. The user may then decide whether the individual, eventhough not registered, should still participate in the video conference.When the user decides to add the individual to the video conference, thevideo conferencing system 110 adds the video stream from the secondcamera to the video conference. Optionally, the video conferencingsystem 110 may store the image or voice recording of the unregisteredindividual in its database 112 for subsequent comparisons.

Referring back to operation 216, the video conferencing system 110determines whether the individual appearing in the second video streamis a registered user.

Referring to operation 220, if the individual is a registered user, thevideo conferencing system 110 prompts the user regarding adding theindividual to the video conference. For example, the video conferencingsystem 110 may determine that the individual appearing on the secondvideo stream is “Jane Doe.” The video conferencing system 110 may promptthe user by displaying, on the user interface 108 of the user device 102of the user, Jane Doe's information along with a question whether theuser wishes to add Jane Doe to the conference. The user may then use theuser interface 108 to either select yes or no. In another example, thevideo conferencing system 110 may prompt the user regarding adding theindividual to the video conference by utilizing a voice prompt. Forexample, the video conferencing system 110 may ask the user thefollowing question: “Do you wish to add Jane Doe to the videoconference?” The user may then state “Yes” or “No”. Alternatively, theuser may also use a hand gesture, such as, for example, a thumbs up signto add Jane Doe to the video conference or a thumbs down signal to notadd Jane Doe to the video conference.

Referring to operation 222, when the user decides to add the individualto the video conference, the user confirms the addition of theindividual using a single prompt response, such as, for example, a touchresponse, a gesture response, or a voice response, and the videoconferencing system 110 adds the individual to the video conference. Thevideo conferencing system 110 utilizes the second camera to stream thesecond video stream so that each participant of the video conference,including the user, sees the newly added individual. It should beappreciated that each user of the video conferencing system 110 may beable to add individuals appearing in their respective second videostreams. For example, user A is on an ongoing video conference with userB. User A is using user device 102 a, while user B is using user device102 b. User device 102 a captures, with its secondary camera, anindividual A whereas user device 102 b captures, with its secondarycamera, an individual B. The video conferencing system 110 determinesthat both individual A and individual B are registered users. The videoconferencing system 110 prompts user A to confirm adding individual A tothe video conference. The video conferencing system 110 also promptsuser B to confirm adding individual B to the video conference. Both userA and user B may then add their respective individuals or decline theaddition.

Referring to operation 224, when the user decides not to add theindividual to the video conference, the video conferencing system 110continues streaming the video conference without the individual.

Referring to FIG. 3, a system 1000 includes a computer system orcomputer 1010 shown in the form of a generic computing device. Themethod 200, for example, may be embodied in a program(s) 1060 (FIG. 3)embodied on a computer readable storage device, for example, generallyreferred to as memory 1030 and more specifically, computer readablestorage medium 1050 as shown in FIG. 3. For example, memory 1030 caninclude storage media 1034 such as RAM (Random Access Memory) or ROM(Read Only Memory), and cache memory 1038. The program 1060 isexecutable by the processing unit or processor 1020 of the computersystem 1010 (to execute program steps, code, or program code).Additional data storage may also be embodied as a database 1110 whichcan include data 1114. The computer system 1010 and the program 1060shown in FIG. 3 are generic representations of a computer and programthat may be local to a user, or provided as a remote service (forexample, as a cloud based service), and may be provided in furtherexamples, using a website accessible using the communications network1200 (e.g., interacting with a network, the Internet, or cloudservices). It is understood that the computer system 1010 alsogenerically represents herein a computer device or a computer includedin a device, such as a laptop or desktop computer, etc., or one or moreservers, alone or as part of a datacenter. The computer system caninclude a network adapter/interface 1026, and an input/output (I/O)interface(s) 1022. The I/O interface 1022 allows for input and output ofdata with an external device 1074 that may be connected to the computersystem. The network adapter/interface 1026 may provide communicationsbetween the computer system a network generically shown as thecommunications network 1200.

The computer 1010 may be described in the general context of computersystem-executable instructions, such as program modules, being executedby a computer system. Generally, program modules may include routines,programs, objects, components, logic, data structures, and so on thatperform particular tasks or implement particular abstract data types.The method steps and system components and techniques may be embodied inmodules of the program 1060 for performing the tasks of each of thesteps of the method and system. The modules are generically representedin FIG. 3 as program modules 1064. The program 1060 and program modules1064 can execute specific steps, routines, sub-routines, instructions orcode, of the program.

The method of the present disclosure can be run locally on a device suchas a mobile device, or can be run a service, for instance, on the server1100 which may be remote and can be accessed using the communicationsnetwork 1200. The program or executable instructions may also be offeredas a service by a provider. The computer 1010 may be practiced in adistributed cloud computing environment where tasks are performed byremote processing devices that are linked through a communicationsnetwork 1200. In a distributed cloud computing environment, programmodules may be located in both local and remote computer system storagemedia including memory storage devices.

More specifically, as shown in FIG. 3, the system 1000 includes thecomputer system 1010 shown in the form of a general-purpose computingdevice with illustrative periphery devices. The components of thecomputer system 1010 may include, but are not limited to, one or moreprocessors or processing units 1020, a system memory 1030, and a bus1014 that couples various system components including system memory 1030to processor 1020.

The bus 1014 represents one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnects (PCI) bus.

The computer 1010 can include a variety of computer readable media. Suchmedia may be any available media that is accessible by the computer 1010(e.g., computer system, or server), and can include both volatile andnon-volatile media, as well as, removable and non-removable media.Computer memory 1030 can include additional computer readable media 1034in the form of volatile memory, such as random access memory (RAM),and/or cache memory 1038. The computer 1010 may further include otherremovable/non-removable, volatile/non-volatile computer storage media,in one example, portable computer readable storage media 1072. In oneembodiment, the computer readable storage medium 1050 can be providedfor reading from and writing to a non-removable, non-volatile magneticmedia. The computer readable storage medium 1050 can be embodied, forexample, as a hard drive. Additional memory and data storage can beprovided, for example, as the storage system 1110 (e.g., a database) forstoring data 1114 and communicating with the processing unit 1020. Thedatabase can be stored on or be part of a server 1100. Although notshown, a magnetic disk drive for reading from and writing to aremovable, non-volatile magnetic disk (e.g., a “floppy disk”), and anoptical disk drive for reading from or writing to a removable,non-volatile optical disk such as a CD-ROM, DVD-ROM or other opticalmedia can be provided. In such instances, each can be connected to bus1014 by one or more data media interfaces. As will be further depictedand described below, memory 1030 may include at least one programproduct which can include one or more program modules that areconfigured to carry out the functions of embodiments of the presentinvention.

The method 200 (FIG. 2), for example, may be embodied in one or morecomputer programs, generically referred to as a program 1060 and can bestored in memory 1030 in the computer readable storage medium 1050. Theprogram 1060 can include program modules 1064. The program modules 1064can generally carry out functions and/or methodologies of embodiments ofthe invention as described herein. The one or more programs 1060 arestored in memory 1030 and are executable by the processing unit 1020. Byway of example, the memory 1030 may store an operating system 1052, oneor more application programs 1054, other program modules, and programdata on the computer readable storage medium 1050. It is understood thatthe program 1060, and the operating system 1052 and the applicationprogram(s) 1054 stored on the computer readable storage medium 1050 aresimilarly executable by the processing unit 1020.

The computer 1010 may also communicate with one or more external devices1074 such as a keyboard, a pointing device, a display 1080, etc.; one ormore devices that enable a user to interact with the computer 1010;and/or any devices (e.g., network card, modem, etc.) that enables thecomputer 1010 to communicate with one or more other computing devices.Such communication can occur via the Input/Output (I/O) interfaces 1022.Still yet, the computer 1010 can communicate with one or more networks1200 such as a local area network (LAN), a general wide area network(WAN), and/or a public network (e.g., the Internet) via networkadapter/interface 1026. As depicted, network adapter 1026 communicateswith the other components of the computer 1010 via bus 1014. It shouldbe understood that although not shown, other hardware and/or softwarecomponents could be used in conjunction with the computer 1010.Examples, include, but are not limited to: microcode, device drivers1024, redundant processing units, external disk drive arrays, RAIDsystems, tape drives, and data archival storage systems, etc.

It is understood that a computer or a program running on the computer1010 may communicate with a server, embodied as the server 1100, via oneor more communications networks, embodied as the communications network1200. The communications network 1200 may include transmission media andnetwork links which include, for example, wireless, wired, or opticalfiber, and routers, firewalls, switches, and gateway computers. Thecommunications network may include connections, such as wire, wirelesscommunication links, or fiber optic cables. A communications network mayrepresent a worldwide collection of networks and gateways, such as theInternet, that use various protocols to communicate with one another,such as Lightweight Directory Access Protocol (LDAP), Transport ControlProtocol/Internet Protocol (TCP/IP), Hypertext Transport Protocol(HTTP), Wireless Application Protocol (WAP), etc. A network may alsoinclude a number of different types of networks, such as, for example,an intranet, a local area network (LAN), or a wide area network (WAN).

In one example, a computer can use a network which may access a websiteon the Web (World Wide Web) using the Internet. In one embodiment, acomputer 1010, including a mobile device, can use a communicationssystem or network 1200 which can include the Internet, or a publicswitched telephone network (PSTN) for example, a cellular network. ThePSTN may include telephone lines, fiber optic cables, microwavetransmission links, cellular networks, and communications satellites.The Internet may facilitate numerous searching and texting techniques,for example, using a cell phone or laptop computer to send queries tosearch engines via text messages (SMS), Multimedia Messaging Service(MMS) (related to SMS), email, or a web browser. The search engine canretrieve search results, that is, links to websites, documents, or otherdownloadable data that correspond to the query, and similarly, providethe search results to the user via the device as, for example, a webpage of search results.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

It is to be understood that although this disclosure includes a detaileddescription on cloud computing, implementation of the teachings recitedherein are not limited to a cloud computing environment. Rather,embodiments of the present invention are capable of being implemented inconjunction with any other type of computing environment now known orlater developed.

Cloud computing is a model of service delivery for enabling convenient,on-demand network access to a shared pool of configurable computingresources (e.g., networks, network bandwidth, servers, processing,memory, storage, applications, virtual machines, and services) that canbe rapidly provisioned and released with minimal management effort orinteraction with a provider of the service. This cloud model may includeat least five characteristics, at least three service models, and atleast four deployment models.

Characteristics are as follows:

On-demand self-service: a cloud consumer can unilaterally provisioncomputing capabilities, such as server time and network storage, asneeded automatically without requiring human interaction with theservice's provider.

Broad network access: capabilities are available over a network andaccessed through standard mechanisms that promote use by heterogeneousthin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to servemultiple consumers using a multi-tenant model, with different physicaland virtual resources dynamically assigned and reassigned according todemand. There is a sense of location independence in that the consumergenerally has no control or knowledge over the exact location of theprovided resources but may be able to specify location at a higher levelof abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elasticallyprovisioned, in some cases automatically, to quickly scale out andrapidly released to quickly scale in. To the consumer, the capabilitiesavailable for provisioning often appear to be unlimited and can bepurchased in any quantity at any time.

Measured service: cloud systems automatically control and optimizeresource use by leveraging a metering capability at some level ofabstraction appropriate to the type of service (e.g., storage,processing, bandwidth, and active user accounts). Resource usage can bemonitored, controlled, and reported, providing transparency for both theprovider and consumer of the utilized service.

Service Models are as follows:

Software as a Service (SaaS): the capability provided to the consumer isto use the provider's applications running on a cloud infrastructure.The applications are accessible from various client devices through athin client interface such as a web browser (e.g., web-based e-mail).The consumer does not manage or control the underlying cloudinfrastructure including network, servers, operating systems, storage,or even individual application capabilities, with the possible exceptionof limited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer isto deploy onto the cloud infrastructure consumer-created or acquiredapplications created using programming languages and tools supported bythe provider. The consumer does not manage or control the underlyingcloud infrastructure including networks, servers, operating systems, orstorage, but has control over the deployed applications and possiblyapplication hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to theconsumer is to provision processing, storage, networks, and otherfundamental computing resources where the consumer is able to deploy andrun arbitrary software, which can include operating systems andapplications. The consumer does not manage or control the underlyingcloud infrastructure but has control over operating systems, storage,deployed applications, and possibly limited control of select networkingcomponents (e.g., host firewalls).

Deployment Models are as follows:

Private cloud: the cloud infrastructure is operated solely for anorganization. It may be managed by the organization or a third party andmay exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by severalorganizations and supports a specific community that has shared concerns(e.g., mission, security requirements, policy, and complianceconsiderations). It may be managed by the organizations or a third partyand may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the generalpublic or a large industry group and is owned by an organization sellingcloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or moreclouds (private, community, or public) that remain unique entities butare bound together by standardized or proprietary technology thatenables data and application portability (e.g., cloud bursting forload-balancing between clouds).

A cloud computing environment is service oriented with a focus onstatelessness, low coupling, modularity, and semantic interoperability.At the heart of cloud computing is an infrastructure that includes anetwork of interconnected nodes.

Referring now to FIG. 4, illustrative cloud computing environment 50 isdepicted. As shown, cloud computing environment 50 includes one or morecloud computing nodes 10 with which local computing devices used bycloud consumers, such as, for example, personal digital assistant (PDA)or cellular telephone 54A, desktop computer 54B, laptop computer 54C,and/or automobile computer system 54N may communicate. Nodes 10 maycommunicate with one another. They may be grouped (not shown) physicallyor virtually, in one or more networks, such as Private, Community,Public, or Hybrid clouds as described hereinabove, or a combinationthereof. This allows cloud computing environment 50 to offerinfrastructure, platforms and/or software as services for which a cloudconsumer does not need to maintain resources on a local computingdevice. It is understood that the types of computing devices 54A-N shownin FIG. 4 are intended to be illustrative only and that computing nodes10 and cloud computing environment 50 can communicate with any type ofcomputerized device over any type of network and/or network addressableconnection (e.g., using a web browser).

Referring now to FIG. 5, a set of functional abstraction layers providedby cloud computing environment 50 (FIG. 4) is shown. It should beunderstood in advance that the components, layers, and functions shownin FIG. 5 are intended to be illustrative only and embodiments of theinvention are not limited thereto. As depicted, the following layers andcorresponding functions are provided:

Hardware and software layer 60 includes hardware and softwarecomponents. Examples of hardware components include: mainframes 61; RISC(Reduced Instruction Set Computer) architecture based servers 62;servers 63; blade servers 64; storage devices 65; and networks andnetworking components 66. In some embodiments, software componentsinclude network application server software 67 and database software 68.

Virtualization layer 70 provides an abstraction layer from which thefollowing examples of virtual entities may be provided: virtual servers71; virtual storage 72; virtual networks 73, including virtual privatenetworks; virtual applications and operating systems 74; and virtualclients 75.

In one example, management layer 80 may provide the functions describedbelow.

Resource provisioning 81 provides dynamic procurement of computingresources and other resources that are utilized to perform tasks withinthe cloud computing environment. Metering and Pricing 82 provide costtracking as resources are utilized within the cloud computingenvironment, and billing or invoicing for consumption of theseresources. In one example, these resources may include applicationsoftware licenses. Security provides identity verification for cloudconsumers and tasks, as well as protection for data and other resources.User portal 83 provides access to the cloud computing environment forconsumers and system administrators. Service level management 84provides cloud computing resource allocation and management such thatrequired service levels are met. Service Level Agreement (SLA) planningand fulfillment 85 provide pre-arrangement for, and procurement of,cloud computing resources for which a future requirement is anticipatedin accordance with an SLA.

Workloads layer 90 provides examples of functionality for which thecloud computing environment may be utilized. Examples of workloads andfunctions which may be provided from this layer include: mapping andnavigation 91; software development and lifecycle management 92; virtualclassroom education delivery 93; data analytics processing 94;transaction processing 95; and adding participants to a virtualconference 96.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A computer system for adding an individual to avideo conference, comprising: one or more processors, one or morecomputer-readable memories, one or more computer-readable tangiblestorage media, and program instructions stored on at least one of theone or more computer-readable tangible storage media for execution by atleast one of the one or more processors via at least one of the one ormore computer-readable memories, wherein the computer system is capableof performing a method comprising: capturing a first video stream of auser from a first camera of a user device and providing the first videoto a device of at least one video conference participant other than theuser; actively scanning, while the user is participating in the videoconference, an environment where the user is located using a secondcamera to capture a second video stream from the second camera;analyzing the second video stream captured by the second camera todetermine whether an individual appears in the second video stream; inresponse to detecting the individual in the second video stream,determining an identity for the individual; prompting the user toconfirm adding the individual to the video conference; and in responseto receiving the confirmation from the user to add the individual to thevideo conference, adding the second video stream to the ongoing videoconference, thereby adding the individual to the video conference. 2.The computer system of claim 1, wherein the first camera is on a firstside of the user device and the second camera is on a different side ofthe user device.
 3. The computer system of claim 1, wherein the firstcamera is on a first side of the user device and the second camera is onan TOT device.
 4. The computer system of claim 1, wherein the adding thesecond video stream to the video conference is performed using a singleprompt response.
 5. The computer system of claim 1, wherein determiningthe identity for the individual further comprising: capturing an imageof the individual appearing in the second camera; and comparing theimage of the individual captured by the second camera to a photo storedin a database.
 6. A computer program product for adding an individual toa video conference, comprising: one or more non-transitorycomputer-readable storage media and program instructions stored on theone or more non-transitory computer-readable storage media, the programinstructions executable by a processor to cause the processor to performa method comprising: capturing a first video stream of a user from afirst camera of a user device and providing the first video to a deviceof at least one video conference participant other than the user;actively scanning, while the user is participating in the videoconference, an environment where the user is located using a secondcamera to capture a second video stream from the second camera;analyzing the second video stream captured by the second camera todetermine whether an individual appears in the second video stream; inresponse to detecting the individual in the second video stream,determining an identity for the individual; prompting the user toconfirm adding the individual to the video conference; and in responseto receiving the confirmation from the user to add the individual to thevideo conference, adding the second video stream to the ongoing videoconference, thereby adding the individual to the video conference. 7.The computer program product of claim 6, wherein the first camera is ona first side of the user device and the second camera is on a differentside of the user device.
 8. The computer program product of claim 6,wherein the first camera is on a first side of the user device and thesecond camera is on an TOT device.
 9. The computer program product ofclaim 6, wherein the adding the second video stream to the videoconference is performed using a single prompt response.
 10. The computerprogram product of claim 9, wherein the single prompt response is atouch response.
 11. The computer program product of claim 9, wherein thesingle prompt response is a voice response.
 12. The computer programproduct of claim 6, wherein determining the identity for the individualfurther comprising: capturing an image of the individual appearing inthe second camera; and comparing the image of the individual captured bythe second camera to a photo stored in a database.